﻿using SharpArch.Core.DomainModel;
using SharpArch.Core.PersistenceSupport;
using NHibernate.Validator.Constraints;
using SharpArch.Core;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace zeus.Core
{
    public class Ubicacion : Entity
    {
        
        
        [Required(ErrorMessage = "Ingrese  Latitud")]
        [DisplayName("Codigo Latitud")]
        public virtual decimal Latitud { get; set; }

        [Required(ErrorMessage = "Ingrese  Longitud")]
        [DisplayName("Codigo Longitud")]
        public virtual decimal Longitud { get; set; }


        [Required(ErrorMessage = "Ingrese  Fecha")]
        [DisplayName("Codigo Fecha")]
        public virtual string Fecha { get; set; }

        [Required(ErrorMessage = "Ingrese  Velocidad")]
        [DisplayName("Codigo Velocidad")]
        public virtual string Velocidad { get; set; }

        [Required(ErrorMessage = "Ingrese  Grados")]
        [DisplayName("Codigo Grados")]
        public virtual int Grados { get; set; }

        [Required(ErrorMessage = "Ingrese  Kilometraje")]
        [DisplayName("Codigo Kilometraje")]
        public virtual decimal Kilometraje { get; set; }

        [Required(ErrorMessage = "Ingrese  Altura")]
        [DisplayName("Codigo Altura")]
        public virtual decimal Altura { get; set; }

        [Required(ErrorMessage = "Ingrese  GpsValido")]
        [DisplayName("Codigo GpsValido")]
        public virtual string GpsValido { get; set; }

        [Required(ErrorMessage = "Ingrese  GpsConectado")]
        [DisplayName("Codigo GpsConectado")]
        public virtual string GpsConectado { get; set; }

        [Required(ErrorMessage = "Ingrese  GpsSatelites")]
        [DisplayName("Codigo GpsSatelites")]
        public virtual int GpsSatelites { get; set; }

        [Required(ErrorMessage = "Ingrese  Combustible")]
        [DisplayName("Codigo Combustible")]
        public virtual int Combustible { get; set; }

        [Required(ErrorMessage = "Ingrese  rpm")]
        [DisplayName("Codigo rpm")]
        public virtual int rpm { get; set; }

        [Required(ErrorMessage = "Ingrese  BateriaPrincipal")]
        [DisplayName("Codigo BateriaPrincipal")]
        public virtual decimal BateriaPrincipal { get; set; }

        [Required(ErrorMessage = "Ingrese  BateriaRespaldo")]
        [DisplayName("Codigo BateriaRespaldo")]
        public virtual decimal BateriaAlterna { get; set; }


        public virtual int Conductor { get; set; }
        public virtual string EstadoLogico { get; set; }
        public virtual string Direccion { get; set; }
        public virtual string Punto { get; set; }
        public virtual decimal DistanciaPunto { get; set; }
        public virtual string Azimut { get; set; }
        public virtual string Estado { get; set; }
        public virtual string FechaServer { get; set; }
        public virtual string Geocerca { get; set; }
        public virtual string GeocercaOut { get; set; }
        public virtual string Trama { get; set; }

        [Required(ErrorMessage = "Ingrese  Codigo unidad")]
        [DisplayName("Codigo unidad")]
        public virtual int CodigoUnidad { get; set; }

        [Required(ErrorMessage = "Ingrese  Codigo evento")]
        [DisplayName("Codigo evento")]
        public virtual int CodigoEvento { get; set; }


        public virtual Unidad Unidad { get; set; }

        public virtual Evento Evento { get; set; }

     }
}
